#ifndef Transfrom_H
#define Transfrom_H
#include "GLAllInOne.h"
#include "Component.h"

using namespace glm;
namespace ManchyGL
{
	class Transform:public Component
	{
	private:
		vec3 _position;
		vec3 _rotation;
		vec3 _scale;
		vec3 _forward;
		vec3 _up;
		vec3 _right;

		bool _isDirty;
		mat4 _matrix;
	public:
		Transform();
		void SetPosition(vec3 value);
		vec3 GetPosition();

		void SetRotation(vec3 value);
		vec3 GetRotation();

		void SetScale(vec3 value);
		vec3 GetScale();

		vec3 GetForward();
		vec3 GetRight();
		vec3 GetUp();

		mat4 GetMatrix();
	private:
		void TryUpdateMatrix();
	};
}
#endif